package com.miaomiao.domain.system;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.miaomiao.common.BaseEntity;
import lombok.Data;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@Data
@TableName(value = "sys_menu")
public class Menu extends BaseEntity {

    /** 菜单ID */
    @TableId(type = IdType.AUTO)
    private Long menuId;

    /** 菜单名称 */
    private String menuName;

    /** 父菜单ID */
    private Long parentId;


    /** 路由地址 */
    private String path;

    /** 组件路径 */
    private String component;

    /** 菜单类型 */
    private String menuType;

    /** 显示状态（0显示 1隐藏） */
    private boolean visible;

    /** 菜单状态（0正常 1停用） */
    private boolean status;

    /** 权限字符串 */
    private String perms;

    /** 菜单图标 */
    private String icon;

    /** 排序顺序 */
    private Integer orderNum;

    /** 备注 */
    private String remark;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonProperty(access = JsonProperty.Access.READ_WRITE)
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;

    /** 子菜单 */
    @TableField(exist = false)
    List<Menu> children = new ArrayList<>();

}
